import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'

// https://vitejs.dev/config/
export default defineConfig(({ mode, command }) => {
  const env = loadEnv(mode, process.cwd())
  // 从环境变量中获取 VITE_APP_BASE_URL
  const baseUrl = env.VITE_APP_BASE_URL

  return {
    plugins: [vue()],
    base: baseUrl,
    resolve: {
      alias: {
        // 设置路径
        '~': path.resolve(__dirname, './'),
        // 设置别名
        '@': path.resolve(__dirname, './src')
      },
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'] // 可选：扩展名列表
    },
    server: {
      port: 5173, // 开发服务器端口
      open: true, // 自动打开浏览器
      allowedHosts: ['33e98068.r33.cpolar.top'],
      host: '0.0.0.0', // 允许外部访问，默认是 localhost
      strictPort: false, // 允许端口被占用时自动调整
      https: false, // 是否启用 HTTPS
      proxy: {
        // 示例代理配置，如果你需要的话
        '/api': {
          target: 'http://localhost:3000',
          changeOrigin: true,
          rewrite: path => path.replace(/^\/api/, '')
        }
      }
    },
    build: {
      outDir: 'dist', // 构建输出目录
      assetsDir: 'assets', // 资源目录
      sourcemap: false, // 是否生成 source map 文件
      minify: 'terser', // 使用 terser 进行压缩
      terserOptions: {
        // compress: {
        //   drop_console: true // 生产环境下移除 console
        // }
      }
    }
  }
})
